#include <iostream>
#include <string>

using namespace std;

class CBase {
    public:
        int test () {
            cout << "CBase :: test" << endl;
            return 0;
        }
        int test (string str) {
            cout << "CBase :: test (string)" << endl;
            return 0;
        }
};

class CDerived : public CBase {
    public:
        int test () {
            cout << "CDerived :: test" << endl;
            return 0;
        }    
        // bool test () {
            // cout << "CDerived :: test" << endl;
            // return true;
        // }
};

int main () {
    // CDerived drv;
    // CBase *bs = &drv;
    // bs->test ();
    CBase bs1;
    CDerived *drv1 = static_cast <CDerived*> (&bs1);
    drv1->test ();
    // bs->test ("saurabh");
    //drv.test ();
    //drv.test ("saurabh");
    return 0;
}
    